package pw_coding

import (
	"bytes"
	"html/template"
	"path"
	"sasuke/tmpl"
	"sasuke/utils"
)

// 文件结构
type File struct{
	F
	FileSuffix string // 文件后缀
	TplCode string // 采用模板
	Args interface{} // 参数
}

func (f *File) Create ()error{
	// 根据模板Code找到模板内容
	var tmpStr string
	var ok bool
	if tmpStr,ok= tmpl.Tpmlmap[f.TplCode]; ok {
	} else {
		panic("模板不存在")
	}
	// 模板装载
	tpl,err := template.New(f.TplCode).Parse(tmpStr)
	if err != nil {
		panic(err)
	}
	// 模板渲染
	content := bytes.NewBuffer([]byte{})
	err = tpl.Execute(content, f.Args)
	if err != nil {
		panic(err)
	}
	// 构建文件全路径
	filefullname:= path.Join(f.FPath,f.Name+f.FileSuffix)
	// 输出文件
	utils.Write2File(filefullname,content.String())
	return nil
}